package com.rchat.pocmini.activity.register;

import com.aso.common.http.delegate.HttpCallbackImpl;
import com.rchat.pocmini.common.mvp.BaseModel;
import com.rchat.pocmini.common.mvp.BasePresenter;
import com.rchat.pocmini.common.mvp.BaseView;

/**
 * Created by ljd on 2017/7/27.
 */

public interface RegisterContract {


    interface View extends BaseView {
        /**
         * 设置注册进度条的可见状态
         *
         * @param visibility 可见状态
         */
        void setProcessBarVisibility(int visibility);

        /**
         * 开始获取验证码
         */
        void getVerificationCodeBegin();
    }

    abstract class Presenter extends BasePresenter<RegisterContract.View, RegisterContract.Model> {
        /**
         * 检查账号是否可用
         *
         * @param account 用户输入的账号
         */
        abstract void checkAccount(String account);

        /**
         * 获取验证码
         *
         * @param userName   用户名
         * @param nickName   昵称
         * @param pwd        密码
         * @param pwdConfirm 确认密码
         * @param phone      手机
         */
        abstract void getVerificationCode(String userName, String nickName, String pwd, String pwdConfirm, String phone);

        /**
         * 注册
         *
         * @param nickName         昵称
         * @param userName         账号名
         * @param pwd              密码
         * @param pwdConfirm       确认密码
         * @param verificationCode 验证码
         * @param mail             邮箱
         * @param phone            手机
         */
        abstract void register(String nickName, String userName, String pwd, String pwdConfirm, String verificationCode, String mail, String phone);
    }

    interface Model extends BaseModel {
        /**
         * 检查账号是否可用
         *
         * @param account  账号
         * @param callback 请求回调
         */
        void checkAccount(String account, HttpCallbackImpl callback);

        /**
         * 获取验证码
         *
         * @param phone    请求内容体
         * @param callback 请求回调
         */
        void getVerificationCode(String phone, HttpCallbackImpl callback);

        /**
         * 注册
         *
         * @param nickName         昵称
         * @param userName         账号名
         * @param pwd              密码
         * @param pwdConfirm       确认密码
         * @param verificationCode 验证码
         * @param mail             邮箱
         * @param phone            手机
         * @param callback         请求回调
         */
        void register(String nickName, String userName, String pwd, String pwdConfirm, String verificationCode, String mail, String phone, HttpCallbackImpl callback);
    }
}
